"""
@Author  : 刘文豪
@desc    : 页面操作基础类
@Time    : 2025/8/10
"""

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class Base:
    def __init__(self,driver):
        self.driver = driver

    # 查找元素方法-废弃
    # def base_find(self,loc,timeout=10,poll_frequency=0.5):
    #     return WebDriverWait(self.driver,timeout,poll_frequency).until(lambda x:x.find_element(loc[0], loc[1]))

    # 查找元素方法
    def base_find(self,loc):
        return  WebDriverWait(self.driver, 10).until(
            EC.element_to_be_clickable(loc)
        )
    # 输入方法
    def base_input(self,loc,value):
        # 1、 获取元素
        el = self.base_find(loc)
        # 2、清空操作
        el.clear()
        # 3、输入内容
        el.send_keys(value)

    # 点击方法
    def base_click(self,loc):
        self.base_find(loc).click()

    # 获取文本值方法
    def base_get_value(self,loc):
        return self.base_find(loc).text

    # 等待元素可点击，并点击方法
    def base_click_u(self, loc):
        # 等待元素可点击，并点击
        el_menu = WebDriverWait(self.driver, 10).until(
            EC.element_to_be_clickable(loc)
        )
        el_menu.click()

    # 等待模态框加载完成（通常通过判断模态框的标题或某个特征元素是否出现）
    def base_until_el(self, loc):
        WebDriverWait(self.driver, 10).until(
            EC.visibility_of_element_located(loc)  # 判断新增页面保存按钮是否出现
        )